package py.una.pol.ii.is2.dao.flota;

import java.util.List;
import javax.ejb.Local;
import py.una.pol.ii.is2.domain.flota.DetallePlantillaMantenimiento;
import py.una.pol.ii.is2.domain.flota.PlantillaMantenimiento;

/**
 *  Define la interfaz DetallePlantillaMantenimientoDAO.
 *  Las operaciones que soporta la interfaz son:
 *      a) insert --> inserción de un objeto de tipo DetallePlantillaMantenimiento
 *      b) update --> actualización de un objeto de tipo DetallePlantillaMantenimiento
 *      c) delete --> eliminación de un objeto de tipo DetallePlantillaMantenimiento
 *      d) find --> búsqueda de un objeto de tipo DetallePlantillaMantenimiento
 *      e) getListaDetallePlantillaMantenimientos --> listado de entidades de tipo DetallePlantillaMantenimiento
 *      f) getListaDetallePlantillaMantenimientosByCodPlantilla --> listado de entidades de tipo DetallePlantillaMantenimiento
 * @author mbenitez
 * @date 30/04/2009
 */
@Local
public interface DetallePlantillaMantenimientoDAO {
    /**
     * Permite la inserción de un objeto de tipo DetallePlantillaMantenimiento
     * @param objeto Elemento a insertar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean insert(DetallePlantillaMantenimiento objeto) throws Exception;
    /**
     * Permite la actualización de un objeto de tipo DetallePlantillaMantenimiento
     * @param objeto Elemento a editar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean update(DetallePlantillaMantenimiento objeto) throws Exception;
    /**
     * Permite la eliminación de un objeto de tipo DetallePlantillaMantenimiento
     * @param caracteristica Elemento a eliminar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean delete(DetallePlantillaMantenimiento objeto) throws Exception;
    /**
     * Busca un registro por el código del mismo.
     * @param codObjeto
     * @return
     * @throws java.lang.Exception
     */
    public DetallePlantillaMantenimiento find(Integer codObjeto) throws Exception;
    /**
     * Permite recuperar una lista de entidades ordenadas por la clave primaria.
     * La lista obedece a una restricción que recibe como parámetro pudiendo éste ser null.
     *
     * @param condicion Restricción de búsqueda
     * @return Lista de entidades, en otro caso null.
     * @throws java.lang.Exception
     */
    public List<DetallePlantillaMantenimiento> getListaDetallePlantillaMantenimientos(String condicion) throws Exception;
    /**
     * Permite recuperar una lista de entidades ordenadas por la código de plantilla.
     * La lista obedece a una restricción que recibe como parámetro pudiendo éste ser null.
     *
     * @param codPlantillaMantenimiento
     * @return
     * @throws java.lang.Exception
     */
    public List<DetallePlantillaMantenimiento> getListaDetallePlantillaMantenimientosByCodPlantilla(PlantillaMantenimiento codPlantillaMantenimiento) throws Exception;
}
